package Text12;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    //    第一行输入两个整数 n和 d，分别代表小岛数目和雷达检测范围。
//    接下来 n行，每行输入两个整数，分别代表小岛的 x，y 轴坐标。
    //输出一个整数，代表所需的最小雷达数目，若没有解决方案则所需数目输出 −1。
    static int N = 1010;
    static PII[] piis = new PII[N];

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int d = in.nextInt();
        boolean flag = false;
        int k = 0, res = 0;
        for (int i = 0; i < n; i++) {
            int x = in.nextInt();
            int y = in.nextInt();
            if (y > d) {
                flag = true;
                break;
            }
            double dis = Math.sqrt(d * d - y * y);
            piis[k++] = new PII(x - dis, x + dis);
        }
        if (flag) {
            res = -1;
        } else {
            Arrays.sort(piis, 0, k);
            double last = -2000;
            for (int i = 0; i < k; i++) {
                if (last < piis[i].l) {
                    res++;
                    last = piis[i].r;
                }
            }
        }
        System.out.println(res);
    }
}

class PII implements Comparable<PII> {
    double l, r;

    public PII(double l, double r) {
        this.l = l;
        this.r = r;
    }

    @Override
    public int compareTo(PII o) {
        return Double.compare(this.r, o.r);
    }
}
